package com.deco.service.sys;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.deco.domain.vo.sys.CmsAdvTypeVo;
import com.deco.domain.vo.sys.CmsAdvVo;
import com.deco.domain.vo.sys.CmsMediaTypeVo;
import com.deco.domain.vo.sys.CmsMediaVo;
import com.deco.logic.sys.CmsMediaLogic;
import com.deco.logic.sys.CmsMediaTypeLogic;
import com.free.common.vo.PageResponseVo;
import com.free.common.vo.PageSearchVo;
import com.free.common.vo.ResultModel;

@Service
public class CmsMediaService {
	   /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    
    @Autowired
    private CmsMediaLogic cmsMediaLogic;
    
    @Autowired
    private CmsMediaTypeLogic cmsMediaTypeLogic;
    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    
    public CmsMediaVo getCmsMedia(int id){
    	return cmsMediaLogic.getCmsMedia(id);
    }
    
    public ResultModel save(CmsMediaVo cmsMediaVo){
    	if(cmsMediaVo.getId() == null || cmsMediaVo.getId() == 0L){
    		cmsMediaLogic.createCmsMedia(cmsMediaVo);
    	}
    	else{
    		cmsMediaLogic.updateCmsMedia(cmsMediaVo);
    	}
    	return ResultModel.success();
    }

	public ResultModel deleteCmsMedia(int id) {
		cmsMediaLogic.deleteCmsMedia(id);
	  	return ResultModel.success();
	}

	public PageResponseVo<CmsMediaVo> pageInfo(
			PageSearchVo<CmsMediaVo> condition) {
		 PageResponseVo<CmsMediaVo> responVo = cmsMediaLogic.getPageInfo(condition);
		 List<CmsMediaVo> cmsMediaList = responVo.getList();
		 if(cmsMediaList != null && cmsMediaList.size() > 0){
			 List<CmsMediaTypeVo> mediaTypeList = cmsMediaTypeLogic.getAll();
			 if(mediaTypeList != null && mediaTypeList.size() > 0){
				 for(CmsMediaVo cmsMediaVo : cmsMediaList){
					 for(CmsMediaTypeVo cmsMediaTypeVo: mediaTypeList){
						 if(cmsMediaTypeVo.getId() == cmsMediaVo.getTypeId()){
							 cmsMediaVo.setTypeFmt(cmsMediaTypeVo.getName());
						 }
					 }
				 }
			 }
			
		 }
		 return responVo;
	}

	public ResultModel batchDelete(Integer[] ids) {
		if(ids == null || ids.length == 0){
    		return ResultModel.success();
		}
    	int res = cmsMediaLogic.batchDelete(ids);
    	if(res > 0){
    		return ResultModel.success();
		}
		return ResultModel.failure();
	}

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/

}
